<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| 运营中台接口配置文件
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware(['api.log', 'admin.auth', 'throttle:api.limiter'])->group(function () {

    /*--------------------------------管理员相关-----------------------------*/
    // 用户新增更新
    Route::post('/v1/user/update', 'UserController@update')->name('用户新增更新');
    // 用户删除
    Route::post('/v1/user/delete', 'UserController@delete');
    // 用户信息
    Route::get('/v1/user/get', 'UserController@get');
    // 用户登录
    Route::post('/v1/user/login', 'UserController@login')->withoutMiddleware(['admin.auth'])->name('管理员登录');
    // 用户重置密码
    Route::post('/v1/user/reset', 'UserController@reset');
    // 用户退出登录
    Route::post('/v1/user/logout', 'UserController@logout');
    // 用户列表
    Route::get('/v1/user/list', 'UserController@getList');
    // 用户数据初始化
    Route::get('/v1/user/init', 'UserController@getInit');

    /*--------------------------------商品分类相关-----------------------------*/
    // 分类新增更新
    Route::post('v1/category/update', 'CategoryController@update');
    // 获取分类列表
    Route::get('v1/category/list', 'CategoryController@getList');
    // 获取分类
    Route::post('v1/category/get', 'CategoryController@get');
    // 删除分类
    Route::post('v1/category/delete', 'CategoryController@delete');
    // 停用/启用分类
    Route::post('v1/category/enable', 'CategoryController@enable');
    // 根据层级获取分类
    Route::get('v1/category/getChild', 'CategoryController@getChild');
    // 获取分类
    Route::get('v1/category/get', 'CategoryController@get');
    // 获取分类选择器
    Route::get('v1/category/getSelectTree', 'CategoryController@getSelectTree');

    /*--------------------------------商品品牌相关-----------------------------*/
    // 获取品牌列表
    Route::get('v1/brand/list', 'BrandController@getList')->middleware('api');
    // 保存品牌
    Route::post('v1/brand/update', 'BrandController@update');
    // 删除品牌
    Route::delete('v1/brand/delete', 'BrandController@delete');
    // 停用/启用品牌
    Route::post('v1/brand/enable', 'BrandController@enable');
    // 获取品牌
    Route::get('v1/brand/get', 'BrandController@get');

    /*--------------------------------商品标签相关-----------------------------*/
    // 获取标签列表
    Route::get('/v1/tag/list', 'TagController@getList');
    // 保存标签
    Route::post('/v1/tag/update', 'TagController@update');
    // 删除标签
    Route::post('/v1/tag/delete', 'TagController@delete');
    // 停用/启用标签
    Route::post('/v1/tag/enable', 'TagController@enable');
    // 获取标签
    Route::get('/v1/tag/get', 'TagController@get');

    /*--------------------------------商品规格相关-----------------------------*/
    // 获取规格列表
    Route::get('v1/specs/list', 'SpecsController@getList');
    // 保存规格
    Route::post('v1/specs/update', 'SpecsController@update');
    // 获取规格详情
    Route::get('v1/specs/get', 'SpecsController@get');
    // 删除规格
    Route::delete('v1/specs/delete', 'SpecsController@delete');
    // 停用启用规格
    Route::post('v1/specs/enable', 'SpecsController@enable');
    // 规格值列表
    Route::get('v1/specVal/list', 'SpecsController@getValList');
    // 规格值保存
    Route::post('v1/specVal/update', 'SpecsController@updateVal');
    // 规格值删除
    Route::delete('v1/specVal/delete', 'SpecsController@deleteVal');
    // 获取规格值
    Route::get('v1/specVal/get', 'SpecsController@getVal');

    /*--------------------------------商品属性相关-----------------------------*/
    // 获取属性列表
    Route::get('v1/attribute/list', 'AttributeController@getList');
    // 保存属性
    Route::post('v1/attribute/update', 'AttributeController@update');
    // 获取属性详情
    Route::get('v1/attribute/get', 'AttributeController@get');
    // 删除属性
    Route::delete('v1/attribute/delete', 'AttributeController@delete');
    // 停用启用属性
    Route::post('v1/attribute/enable', 'AttributeController@enable');

    /*--------------------------------商品相关-----------------------------*/
    // 获取保存商品的初始化数据
    Route::get('/v1/goods/init', 'GoodsController@init');
    // 新增商品
    Route::post('/v1/goods/create', 'GoodsController@create');
    // 编辑商品
    Route::post('/v1/goods/update', 'GoodsController@update');
    // 商品列表
    Route::get('/v1/goods/list', 'GoodsController@getList');
    // 商品详情
    Route::get('/v1/goods/get', 'GoodsController@get');
    // 发布商品初始化的数据
    Route::get('/v1/goods/init', 'GoodsController@getInit');

    /*--------------------------------系统相关-----------------------------*/
    // 上传文件
    Route::post('/v1/file/upload', 'FileController@upload');
    // 分组列表
    Route::get('/v1/group/list', 'GroupController@getList');
    // 文件列表
    Route::get('/v1/file/list', 'FileController@getList');
    // 分组列表
    Route::get('/v1/group/get', 'GroupController@get');
    // 删除分组
    Route::post('/v1/group/delete', 'GroupController@delete');
    // 保存分组
    Route::post('/v1/group/update', 'GroupController@update');

    /*--------------------------------菜单相关-----------------------------*/
    // 菜单列表
    Route::get('/v1/menu/list', 'MenuController@getList');
    // 菜单列表（树形）
    Route::get('/v1/menu/getTree', 'MenuController@getTree');
    // 菜单列表（资源、菜单配置使用）（树形）
    Route::get('/v1/menu/getResTree', 'MenuController@getResTree');
    // 菜单保存
    Route::post('/v1/menu/update', 'MenuController@update');
    // 菜单详情
    Route::get('/v1/menu/get', 'MenuController@get');
    // 菜单启用/停用
    Route::post('/v1/menu/enable', 'MenuController@enable');
    // 菜单删除
    Route::delete('/v1/menu/delete', 'MenuController@delete');

    /*--------------------------------资源相关-----------------------------*/
    // 资源列表
    Route::get('/v1/resource/list', 'ResourcesController@getList');
    // 资源保存
    Route::post('/v1/resource/update', 'ResourcesController@update');
    // 资源删除
    Route::delete('/v1/resource/delete', 'ResourcesController@delete');
    // 资源详情
    Route::get('/v1/resource/get', 'ResourcesController@get');
    // 资源启用/停用
    Route::post('/v1/resource/enable', 'ResourcesController@enable');

    /*--------------------------------角色相关-----------------------------*/
    // 角色列表
    Route::get('v1/role/list', 'RoleController@getList');
    // 角色保存
    Route::post('v1/role/update', 'RoleController@update');
    // 角色删除
    Route::delete('v1/role/delete', 'RoleController@delete');
    // 角色详情
    Route::get('v1/role/get', 'RoleController@get');
    // 角色启用/停用
    Route::post('v1/role/enable', 'RoleController@enable');
    // 角色资源
    Route::get('/v1/role/getResource', 'RoleController@getResource');
    // 角色菜单
    Route::get('/v1/role/getMenu', 'RoleController@getMenu');
    // 角色保存绑定资源
    Route::post('/v1/role/updateResource', 'RoleController@updateResource');
    // 角色保存绑定菜单
    Route::post('/v1/role/updateMenu', 'RoleController@updateMenu');

    /*--------------------------------订单相关-----------------------------*/
    // 订单列表
    Route::post('/v1/order/list', 'OrderController@getList');
    // 订单详情
    Route::get('/v1/order/get', 'OrderController@get');
    // 订单初始化信息
    Route::get('/v1/order/init', 'OrderController@init');

    /*--------------------------------发货物流相关-----------------------------*/
    // 物流公司
    Route::get('/v1/delivery/getCompanyList', 'DeliveryController@getCompanyList');
    // 保存发货单
    Route::post('/v1/delivery/update', 'DeliveryController@update');
    // 发货单列表
    Route::get('/v1/delivery/list', 'DeliveryController@getList');
    // 删除发货单
    Route::post('/v1/delivery/delete', 'DeliveryController@delete');
    // 获取发货单
    Route::get('/v1/delivery/get', 'DeliveryController@get');
    // 获取发货单初始化数据
    Route::get('/v1/delivery/init', 'DeliveryController@init');

    /*--------------------------------客户相关-----------------------------*/
    // 客户列表
    Route::get('/v1/customer/list', 'CustomerController@getList');
    // 保存客户
    Route::post('/v1/customer/update', 'CustomerController@update');
    // 客户删除
    Route::post('/v1/customer/delete', 'CustomerController@delete');
    // 客户等级列表
    Route::get('/v1/customer/getGradeList', 'CustomerController@getGradeList');
    // 客户分组列表
    Route::get('/v1/customer/getGroupList', 'CustomerController@getGroupList');

    /*--------------------------------客户收货地址相关-----------------------------*/
    // 收货地址
    Route::get('/v1/address/list', 'AddressController@getList');

    /*--------------------------------客户收藏地址相关-----------------------------*/
    // 客户收藏列表
    Route::get('/v1/favorite/list', 'CustomerController@getFavoriteList');

    /*--------------------------------客户等级相关-----------------------------*/
    // 等级列表
    Route::get('/v1/grade/list', 'GradeController@getList');
    // 保存等级
    Route::post('/v1/grade/update', 'GradeController@update');
    // 删除等级
    Route::post('/v1/grade/delete', 'GradeController@delete');
    // 获取等级
    Route::get('/v1/grade/get', 'GradeController@get');

    /*--------------------------------营销活动相关-----------------------------*/
    // 优惠券列表
    Route::get('/v1/coupon/list', 'CouponController@getList');
    // 保存优惠券
    Route::post('/v1/coupon/update', 'CouponController@update');
    // 停启用优惠券
    Route::post('/v1/coupon/enable', 'CouponController@enable');
    // 查看优惠券
    Route::get('/v1/coupon/get', 'CouponController@get');
    // 发放优惠券
    Route::post('/v1/coupon/assign', 'CouponController@assign');

    /*--------------------------------售后相关-----------------------------*/
    // 售后申请单列表
    Route::get('/v1/aftersales/getApplyList', 'AfterSalesController@getApplyList');
    // 审核售后申请单
    Route::post('/v1/aftersales/auditApply', 'AfterSalesController@auditApply');
    // 获取售后申请单
    Route::get('/v1/aftersales/getApply', 'AfterSalesController@getApply');

    /*--------------------------------参数配置相关-----------------------------*/
    // 获取配置列表
    Route::post('/v1/setting/update', 'SettingController@update');
    // 保存配置
    Route::get('/v1/setting/get', 'SettingController@get');

    /*--------------------------------系统日志相关-----------------------------*/
    // 获取日志列表
    Route::post('/v1/log/getList', 'LogController@getList');

    /*--------------------------------报表统计相关-----------------------------*/
    // 获取运营看板数据
    Route::get('/v1/report/getDashboardStat', 'ReportController@getDashboardStat');

    /*--------------------------------支付相关-----------------------------*/
    // 获取支付方式数据
    Route::get('/v1/pay/list', 'PayController@getPayList');
    // 启用停用支付方式
    Route::post('/v1/pay/enable', 'PayController@enable');
    // 删除支付方式
    Route::post('/v1/pay/delete', 'PayController@delete');
    // 更新支付方式
    Route::post('/v1/pay/update', 'PayController@update');
    // 获取支付方式
    Route::get('/v1/pay/get', 'PayController@getInfo');

    /*--------------------------------店铺相关-----------------------------*/
    // 获取店铺选择器列表
    Route::get('/v1/store/getSelectList', 'StoreController@getSelectList');
});
